package com.macro.mall.portal.dao;

import com.macro.mall.model.SmsCoupon;
import com.macro.mall.portal.domain.CartProduct;
import com.macro.mall.portal.domain.PromotionProduct;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 前台系统自定义商品Dao
 * Created by macro on 2018/8/2.
 */
public interface PortalProductDao {
    /**
     * 获取购物车商品信息
     */
    CartProduct getCartProduct(@Param("id") Long id);

    /**
     * 获取促销商品信息列表
     */
    List<PromotionProduct> getPromotionProductList(@Param("ids") List<Long> ids,@Param("agentId")Long agentId, @Param("storeId")Long storeId);

    /**
     * 获取可用优惠券列表
     */
    List<SmsCoupon> getAvailableCouponList(@Param("productId") Long productId, @Param("productCategoryId") Long productCategoryId);

    /**
     * 通过 父级商品id获取组合商品的库存
     * @author zhouboyu
     * @Date 2020年9月7日
     * @param parentId
     * @param agentId
     * @return
     */
    List<HashMap<String,Object>> getCombinedStock(@Param("parentId") Long parentId,@Param("agentId") Long agentId,Integer activity);
    /**
     * 获取当前用户订单数量
     * @author zhouboyu
     * @Date 2020年9月23日
     * @return
     */
    Map<String, Object> getOrderCounts(@Param("memberId")Long memberId,@Param("type")Integer type);

    /**
     * 获取当前经纪人订单数量
     * @author zhouboyu
     * @Date 2020年9月23日
     * @return
     */
    Map<String, Object> getOrderCountsByAgent(@Param("memberId")Long memberId,@Param("type")Integer type);
}
